/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package TapestryModel;

import org.eclipse.emf.common.util.EList;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Param Link</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link TapestryModel.ParamLink#getOwner <em>Owner</em>}</li>
 *   <li>{@link TapestryModel.ParamLink#getLabelRef <em>Label Ref</em>}</li>
 *   <li>{@link TapestryModel.ParamLink#getParam <em>Param</em>}</li>
 * </ul>
 * </p>
 *
 * @see TapestryModel.TapestryModelPackage#getParamLink()
 * @model
 * @generated
 */
public interface ParamLink extends Link {
    /**
     * Returns the value of the '<em><b>Owner</b></em>' container reference.
     * It is bidirectional and its opposite is '{@link TapestryModel.ContentObject#getLink <em>Link</em>}'.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Owner</em>' container reference isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Owner</em>' container reference.
     * @see #setOwner(ContentObject)
     * @see TapestryModel.TapestryModelPackage#getParamLink_Owner()
     * @see TapestryModel.ContentObject#getLink
     * @model opposite="link" required="true" transient="false"
     * @generated
     */
    ContentObject getOwner();

    /**
     * Sets the value of the '{@link TapestryModel.ParamLink#getOwner <em>Owner</em>}' container reference.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Owner</em>' container reference.
     * @see #getOwner()
     * @generated
     */
    void setOwner(ContentObject value);

    /**
     * Returns the value of the '<em><b>Label Ref</b></em>' reference.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Label Ref</em>' reference isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Label Ref</em>' reference.
     * @see #setLabelRef(Attribute)
     * @see TapestryModel.TapestryModelPackage#getParamLink_LabelRef()
     * @model
     * @generated
     */
    Attribute getLabelRef();

    /**
     * Sets the value of the '{@link TapestryModel.ParamLink#getLabelRef <em>Label Ref</em>}' reference.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Label Ref</em>' reference.
     * @see #getLabelRef()
     * @generated
     */
    void setLabelRef(Attribute value);

    /**
     * Returns the value of the '<em><b>Param</b></em>' containment reference list.
     * The list contents are of type {@link TapestryModel.LinkMapping}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Param</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Param</em>' containment reference list.
     * @see TapestryModel.TapestryModelPackage#getParamLink_Param()
     * @model containment="true"
     * @generated
     */
    EList<LinkMapping> getParam();

} // ParamLink
